#pragma once
#include"ListaTemplate.h"
#include "Escuela.h"
#include"Estudiante.h"
#include"Nacional.h"
#include"Extranjero.h"
#include"Profesor.h"
#include"Curso.h"
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

class Escuela
{
private:
	string nombre;
	Lista<Curso> *cursos;
	Lista<Profesor> *profesores;
	Profesor *director;
	Lista<Estudiante> *estudiantes;

public:
	Escuela(string);
	~Escuela();
	Lista<Curso> *getLista();
	Lista<Profesor> *getProfesores();
	Lista<Estudiante> *getEstudiantes();
	void setDirector(Profesor *);
	Profesor *getDirector();
	string toString();
	string getNombre();
	bool asignarProfeDirector(string);
	Lista<Profesor> *listaProfesDeUnCurso(string);
	//void mostrarCursosConProfes();
	string toStringCursosConProfes();
	Lista<Estudiante> *listaEstudiantesDeUnCurso(string);
	bool operator ==(string);
	


	//-------------------------------------------------------------------
	//-----------------metodos especiales de listacurso----------------

	int modificarCurso(string,string);
	
	
	
	//-------------------------------------------------------------------
    //------------------metodos especiales de listProfesor---------------


	int modificarProfesor(string,string,string,string);
    void eliminaCursosDeProfes(string);


	//-------------------------------------------------------------------
     //-------------------metodos de listaEstudiante---------------------


	void eliminaCursosDeEstudiantes(string);
	int modificarEstudiante(string,string,string,string,string, bool, float);
    string toStringArancel(string );

	//---------------------------------------------------------------------










};

